package com.tarena.lbs.basic.web.service;

import com.tarena.lbs.base.protocol.pager.BasePageList;
import com.tarena.lbs.base.protocol.pager.PageResult;
import com.tarena.lbs.pojo.basic.bo.StoreBO;
import com.tarena.lbs.pojo.basic.param.StoreParam;
import com.tarena.lbs.pojo.basic.param.UserLocationParam;
import com.tarena.lbs.pojo.basic.param.UserStoreParam;
import com.tarena.lbs.pojo.basic.query.AreaStoreQuery;
import com.tarena.lbs.pojo.basic.query.MarketingSelectedQuery;
import com.tarena.lbs.pojo.basic.query.StoreQuery;
import com.tarena.lbs.pojo.basic.query.UserStoreQuery;
import com.tarena.lbs.pojo.basic.vo.StoreVO;

public interface IStoreService {
    void shopAdd(StoreParam storeParam);

    void deleteByID(Integer id);

    void enableStatusById(Integer id);

    void disableStatusById(Integer id);

    PageResult<StoreVO> getAll(StoreQuery storeQury);

    StoreVO getStoreById(Integer id);

    void updateStore(StoreParam storeParam);

    void userLocation(UserLocationParam param) throws Exception;

    void userInterest(UserStoreParam userStoreParam) throws Exception;

    PageResult<StoreVO> userInterestStoreList(UserStoreQuery userStoreQuery) throws Exception;

    /**
     * 功能描述: 查询城市下的区域
     */
    BasePageList<StoreBO> getStoreByCity(AreaStoreQuery storeQuery);

    /**
     * 功能描述：获取活动选中的店铺
     */
    BasePageList<StoreBO> marketingStoreList(MarketingSelectedQuery storeQuery);
}
